﻿#region Using directives

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;

#endregion

namespace NetROS.Tiers.Entities
{	
	///<summary>
	/// An object representation of the 'tblDokumentStavka' table. [No description found the database]	
	///</summary>
	/// <remarks>
	/// This file is generated once and will never be overwritten.
	/// </remarks>	
    [Serializable]
    [CLSCompliant(true)]
    public partial class DokumentStavka : DokumentStavkaBase
    {
        #region Constructors

        ///<summary>
        /// Creates a new <see cref="DokumentStavka"/> instance.
        ///</summary>
        public DokumentStavka() : base() { }

        
        #endregion
          
        //        /// <summary>
        //        /// 	Gets or sets the NVrijednost property. 
        //        ///		
        //        /// </summary>
        //        /// <value>This type is decimal.</value>
        //        /// <remarks>
        //        /// This property can not be set to null. 
        //        /// </remarks>
        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public virtual System.Decimal? N_Vrijednost
        //        {
        //            get
        //            {
        //                decimal? res1 = (decimal?)this.Kolicina * this.Vrijednost;
        //                if ((decimal?)this.Postotak2 != null && (decimal?)this.Postotak2 != 0)
        //                {
        //                    if (this.Postotak2 == 100)
        //                    {
        //                        return 0;
        //                    }
        //                    else
        //                    {
        //                        return res1 * ((100 - (decimal?)this.Postotak2) / 100);
        //                    }

        //                }
        //                return res1;
        //            }

        //        }

        //        /// <summary>
        //        /// 	Gets or sets the VP_Vrijednost property. 
        //        ///		
        //        /// </summary>
        //        /// <value>This type is decimal.</value>
        //        /// <remarks>
        //        /// This property can not be set to null. 
        //        /// </remarks>
        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public virtual System.Decimal? VP_Vrijednost
        //        {
        //            get
        //            {
        //                return ((decimal?)this.Kolicina * this.Vrijednost2);
        //            }

        //        }

        //        /// <summary>
        //        /// 	Gets or sets the MP_Vrijednost property. 
        //        ///		
        //        /// </summary>
        //        /// <value>This type is decimal.</value>
        //        /// <remarks>
        //        /// This property can not be set to null. 
        //        /// </remarks>
        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public virtual System.Decimal? MP_Vrijednost
        //        {
        //            get
        //            {
        //                return ((decimal?)this.Kolicina * this.Vrijednost3);
        //            }

        //        }

        //        /// <summary>
        //        /// 	Gets or sets the VPC property. 
        //        ///		
        //        /// </summary>
        //        /// <value>This type is decimal.</value>
        //        /// <remarks>
        //        /// This property can not be set to null. 
        //        /// </remarks>
        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public virtual System.Decimal? VPC
        //        {
        //            get
        //            {
        //                return (this.Vrijednost2);
        //            }

        //            set
        //            {
        //                this.Vrijednost2 = value;
        //                if (Vrijednost2 != 0)
        //                {
        //                    if (Vrijednost != 0)
        //                    {
        //                        Postotak = (float?)((Vrijednost2 / NabavnaCijenaZavisniTroskoviINC) - 1) * 100;
        //                      //  Vrijednost3 = Vrijednost2 * (decimal)1.22;
        //                    }

        //                }

        //            }

        //        }

        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public virtual System.Single? VrijednostValute
        //        {
        //            get
        //            {
        //                if (!this.Kolicina3.HasValue)
        //                {
        //                    this.Kolicina3 = 1;
        //                }
        //                return (this.Kolicina3);
        //            }


        //        }



        //        /// <summary>
        //        /// 	Gets or sets the Marza property. 
        //        ///		
        //        /// </summary>
        //        /// <value>This type is decimal.</value>
        //        /// <remarks>
        //        /// This property can not be set to null. 
        //        /// </remarks>
        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public virtual System.Single? Marza
        //        {
        //            get
        //            {
        //                if (NabavnaCijenaZavisniTroskoviINC == 0)
        //                {
        //                    Postotak = null;
        //                    return (null);

        //                }

        //                if (NabavnaCijenaZavisniTroskoviINC.HasValue)
        //                {
        //                     Postotak = (float?)((Vrijednost2 / NabavnaCijenaZavisniTroskoviINC) - 1) * 100;
        //                }
        //                return (this.Postotak);
        //            }

        //            set
        //            {
        //                this.Postotak = value;
        //                if (Postotak != 0)
        //                {
        //                    if (NabavnaCijenaZavisniTroskoviINC != 0)
        //                    {
        //                        Vrijednost2 = (((decimal?)Postotak / 100) + 1) * NabavnaCijenaZavisniTroskoviINC;
        //                        //Vrijednost3 = Vrijednost2 * (decimal)1.22;
        //                    }
        //                }
        //                else
        //                {
        //                    Vrijednost2 = NabavnaCijenaZavisniTroskoviINC;
        //                 //   Vrijednost3 = Vrijednost2 * (decimal)1.22;
        //                }


        //            }


        //        }

        //#region "Zapisnik o promjeni"
        //       [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public virtual System.Decimal? StariVPC
        //        {
        //            get
        //            {

        //                return base.Vrijednost4;

        //            }
        //            set
        //            {
        //                base.Vrijednost4 = value;
        //            }
        //        }

        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public virtual System.Single? PostotakPromjene
        //        {
        //            get
        //            {
        //                if (StariVPC == 0)
        //                {
        //                    Postotak = null;
        //                    return (null);

        //                }

        //                if (StariVPC.HasValue)
        //                {
        //                    Postotak = (float?)((Vrijednost2 / StariVPC) - 1) * 100;
        //                }
        //                return (this.Postotak);
        //            }

        //            set
        //            {
        //                this.Postotak = value;
        //                if (Postotak != 0)
        //                {
        //                    if (StariVPC != 0)
        //                    {
        //                        Vrijednost2 = (((decimal?)Postotak / 100) + 1) * StariVPC;
        //                        //Vrijednost3 = Vrijednost2 * (decimal)1.22;
        //                    }
        //                }
        //                else
        //                {
        //                    Vrijednost2 = StariVPC;
        //                    //   Vrijednost3 = Vrijednost2 * (decimal)1.22;
        //                }


        //            }

        //        }

        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public virtual System.Decimal? NoviVPC
        //        {
        //            get
        //            {
        //                return (this.Vrijednost2);
        //            }

        //            set
        //            {
        //                this.Vrijednost2 = value;
        //                if (Vrijednost2 != 0)
        //                {
        //                    if (Vrijednost != 0)
        //                    {
        //                        Postotak = (float?)((Vrijednost2 / StariVPC) - 1) * 100;
        //                        //  Vrijednost3 = Vrijednost2 * (decimal)1.22;
        //                    }

        //                }

        //            }
        //        }

        //#endregion 

        //        /// <summary>
        //        /// 	Gets or sets the MarzanaCijenu property. 
        //        ///		
        //        /// </summary>
        //        /// <value>This type is decimal.</value>
        //        /// <remarks>
        //        /// This property can not be set to null. 
        //        /// </remarks>
        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public virtual System.Decimal? MarzanaNC
        //        {
        //            get
        //            {
        //                if (Postotak != null)
        //                {
        //                    return ((((decimal?)(Postotak * -1) / 100)) * Vrijednost2) * -1;
        //                }
        //                else
        //                {
        //                    return null;
        //                }

        //            }


        //        }


        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public virtual System.Single? RabatN
        //        {
        //            get
        //            {
        //                if (!this.Postotak2.HasValue)
        //                {
        //                    this.Postotak2 = 0;
        //                }
        //                return (this.Postotak2);
        //            }

        //            set
        //            {
        //                this.Postotak2 = value;
        //            }

        //        }






        ///<summary>
        ///</summary>
        public void AddValidationPrijemniList()
        {
            // ValidationRules.AddRule(ValidateKolicina, new ValidationRuleArgs("Kolicina"));
            base.AddValidationRules();



        }

        //        private bool ValidateKolicina(object target, Validation.ValidationRuleArgs e)
        //        {

        //                        if (this.Kolicina <=3 )
        //            {
        //               this.IDDokumentSource.IDOrganizacijaOd.ToString();
        //              e.Description = "Greska nedovoljno na skladištu.";

        //                return false;

        //            }

        //            return true;

        //        }

        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public override decimal? Vrijednost
        //        {
        //            get
        //            {

        //                    return base.Vrijednost;

        //            }
        //            set
        //            {

        //                if (value != null)
        //                {
        //                    base.Vrijednost = value.Value;

        //                }
        //                else
        //                {
        //                    base.Vrijednost = value;
        //                }
        //            }
        //        }


        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public override decimal? Vrijednost4
        //        {
        //            get
        //            {

        //                    return base.Vrijednost4;

        //            }
        //            set
        //            {
        //                base.Vrijednost4 = value;
        //                Vrijednost = ZavisniTRUkupnoOba + NabavnaVRKune;
        //            }
        //        }

        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public virtual decimal? NVPrvi
        //        {

        //            get
        //            {
        //                return Vrijednost4 * (decimal)Kolicina;
        //            }

        //            //set
        //            //{
        //            //    base.Vrijednost4 = value;
        //            //    Vrijednost = ZavisniTRUkupnoOba + NabavnaVRKune;
        //            //}
        //        }




        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public decimal? NabavniRabat
        //        {
        //            get
        //            {
        //                return ((((decimal?)(Postotak2*-1) / 100)) * Vrijednost4) * -1;
        //            }
        //        }


        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public  decimal? NabavnaVR
        //        {
        //            get
        //            {
        //                return (((decimal?)(Postotak2 * -1) / 100) + 1) * Vrijednost4;
        //            }
        //        }


        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public decimal? NabavnaVRKune
        //        {
        //            get
        //            {
        //                return (decimal)VrijednostValute * NabavnaVR;
        //            }
        //        }

        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public decimal? NabavnaUkupno
        //        {
        //            get
        //            {
        //                return NabavnaVR * (decimal)Kolicina;
        //            }
        //        }

        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public decimal? NabavnaUkupnoKune
        //        {
        //            get
        //            {
        //                return NabavnaVRKune * (decimal)Kolicina;
        //            }
        //        }

        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public Single? ZavisniTRKorisnik
        //        {
        //            get
        //            {
        //                if (!Postotak4.HasValue)
        //                {
        //                    Postotak4 = 0;
        //                }
        //                return Postotak4;
        //            }
        //            set
        //            {
        //                Postotak4 = value; ;
        //            }
        //        }

        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public Decimal? ZavisniTRKorisnikUkupno
        //        {
        //            get
        //            {
        //                return (((decimal?)ZavisniTRKorisnik / 100) + 1) * NabavnaUkupnoKune;
        //            }

        //        }

        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public Single? ZavisniTR
        //        {
        //            get
        //            {
        //                if (!Postotak3.HasValue)
        //                {
        //                    Postotak3 = 0;
        //                }
        //                return Postotak3;
        //            }
        //            set
        //            {
        //                Postotak3 = value; ;
        //            }

        //        }

        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public Decimal? ZavisniTRUkupno
        //        {
        //            get
        //            {
        //                return (((decimal?)ZavisniTR / 100) + 1) * NabavnaUkupnoKune;
        //            }

        //        }

        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public Single? ZavisniTRPostoOba
        //        {
        //            get
        //            {
        //                return ZavisniTR + ZavisniTRKorisnik;
        //            }

        //        }

        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public Decimal? ZavisniTRUkupnoOba
        //        {
        //            get
        //            {
        //                return (((decimal?)ZavisniTRPostoOba / 100) + 1) * NabavnaUkupnoKune;
        //            }

        //        }

        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public Decimal? NabavnaCijenaZavisniTroskoviINC
        //        {
        //            get
        //            {
        //                Vrijednost = (((decimal?)ZavisniTRPostoOba / 100) + 1) * + NabavnaVRKune;
        //                return Vrijednost;
        //            }

        //        }

        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public Decimal? NabavnaCijenaZavisniTroskoviINCUkupno
        //        {
        //            get
        //            {
        //                return NabavnaCijenaZavisniTroskoviINC * (decimal)Kolicina;
        //            }

        //        }




        //        public override decimal? Vrijednost2
        //        {
        //            get
        //            {

        //                return base.Vrijednost2;

        //            }
        //            set
        //            {

        //                if (value != null)
        //                {
        //                    base.Vrijednost2 = value.Value;
        //                }
        //                else
        //                {
        //                    base.Vrijednost2 = value;
        //                }
        //            }
        //        }


        //        public override decimal? Vrijednost3
        //        {
        //            get
        //            {

        //                return base.Vrijednost3;

        //            }
        //            set
        //            {

        //                if (value != null)
        //                {
        //                    base.Vrijednost3 = value.Value;
        //                }
        //                else
        //                {
        //                    base.Vrijednost3 = value;
        //                }
        //            }
        //        }


        //        public override float? Postotak
        //        {
        //            get
        //            {

        //                return base.Postotak;

        //            }
        //            set
        //            {

        //                if (value != null)
        //                {
        //                    base.Postotak = value.Value;
        //                }
        //                else
        //                {
        //                    base.Postotak = value;
        //                }
        //            }
        //        }

        //#region "Otpremnica"

        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public virtual Decimal? VrijednostbezPorezaOtpremnica
        //        {
        //            get
        //            {
        //                decimal? result = null;
        //                result = Vrijednost2;
        //                if (Postotak2 != 0 && Postotak2 != null)
        //                {
        //                    if (Vrijednost2 != 0 && Vrijednost2 != null)
        //                    {
        //                        result = (((decimal?)Postotak2 / 100) + 1) * Vrijednost2;
        //                        //Vrijednost3 = Vrijednost2 * (decimal)1.22;
        //                        result = result.Value;
        //                    }

        //                }
        //                return (result);
        //            }

        //        }

        //        /// <summary>
        //        /// 	Gets or sets the VrijednostbezPorezaUkupnoOtpremnica property. 
        //        ///		
        //        /// </summary>
        //        /// <value>This type is decimal.</value>
        //        /// <remarks>
        //        /// This property can not be set to null. 
        //        /// </remarks>
        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public virtual Decimal? VrijednostbezPorezaUkupnoOtpremnica
        //        {
        //            get
        //            {
        //                //decimal? result = null;
        //                //result = Vrijednost2;
        //                //if (Postotak2 != 0 && Postotak2 != null)
        //                //{
        //                //    if (Vrijednost2 != 0 && Vrijednost2 != null)
        //                //    {
        //                //        result = (((decimal?)Postotak2 / 100) + 1) * Vrijednost2;
        //                //        //Vrijednost3 = Vrijednost2 * (decimal)1.22;
        //                //    }

        //                //}
        //                Decimal? result = null;
        //                if (VrijednostbezPorezaOtpremnica.HasValue)
        //                {
        //                    result = VrijednostbezPorezaOtpremnica.Value * (decimal)Kolicina;
        //                }

        //                return result;
        //            }

        //        }
        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public decimal? IznossPorez
        //        {
        //            get
        //            {
        //                decimal? result = null;
        //                if (VrijednostbezPorezaOtpremnica.HasValue)
        //                {
        //                    if (base.Postotak.Value != 0)
        //                    {
        //                        result = (((decimal?)Postotak / 100) + 1) * VrijednostbezPorezaOtpremnica.Value;
        //                        result = result.Value;
        //                    }
        //                    else
        //                    {
        //                        result = VrijednostbezPorezaOtpremnica.Value;
        //                        result = result.Value;
        //                    }

        //                }

        //                return result;

        //            }
        //        }


        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public decimal? IznossPorezUkupno
        //        {
        //            get
        //            {
        //                decimal? result = null;
        //                if (VrijednostbezPorezaOtpremnica.HasValue)
        //                {
        //                    if (base.Postotak.Value != 0)
        //                    {
        //                        result = ((((decimal?)Postotak / 100) + 1) * VrijednostbezPorezaOtpremnica.Value * (decimal)base.Kolicina);
        //                        result = result.Value;
        //                    }
        //                    else
        //                    {
        //                        result = VrijednostbezPorezaOtpremnica.Value * (decimal)base.Kolicina;
        //                        result = result.Value;
        //                    }

        //                }

        //                return result;

        //            }
        //        }
        //#endregion

        //        #region "Računi"
        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public  decimal? R_Cijena
        //        {
        //            get
        //            {

        //                return base.Vrijednost4;

        //            }
        //            set
        //            {
        //                base.Vrijednost4 = value;

        //            }
        //        }
        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public decimal? R_CijenaIznos
        //        {
        //            get
        //            {

        //                return base.Vrijednost4 *(decimal?) R_Kolicina;

        //            }


        //        }
        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public Single R_Kolicina
        //        {
        //            get
        //            {

        //                return base.Kolicina;

        //            }
        //            set
        //            {
        //                base.Kolicina = value;

        //            }
        //        }


        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public virtual System.Single? R_RabatPosto
        //        {
        //            get
        //            {
        //                if (!this.Postotak4.HasValue)
        //                {
        //                    R_RabatPosto = 0;
        //                }


        //                if (R_Cijena == 0)
        //                {
        //                    Postotak4 = null;
        //                    return (null);

        //                }



        //                //if (R_Cijena.HasValue)
        //                //{
        //                //    Postotak = ((float?)((Vrijednost2 / R_Cijena) - 1) * 100)*-1;
        //                //}
        //                return (this.Postotak4);
        //            }

        //            set
        //            {
        //                this.Postotak4 = value;
        //                if (Postotak4 != 0)
        //                {
        //                    if (R_Cijena != 0)
        //                    {
        //                        Vrijednost2 = (((decimal?)R_RabatPosto * -1 / 100) + 1) * R_Cijena;
        //                        //Vrijednost3 = Vrijednost2 * (decimal)1.22;
        //                    }
        //                }
        //                //if (Postotak != 0)
        //                //{
        //                //    if (R_Cijena != 0)
        //                //    {
        //                //        Vrijednost2 = (((decimal?)Postotak * -1 / 100) + 1) * R_Cijena;
        //                //        //Vrijednost3 = Vrijednost2 * (decimal)1.22;
        //                //    }
        //                //}
        //                //else
        //                //{
        //                //    Vrijednost2 = R_Cijena;
        //                //    //   Vrijednost3 = Vrijednost2 * (decimal)1.22;
        //                //}
        //            }
        //        }

        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public virtual System.Decimal? R_RabatIznos
        //        {
        //            get
        //            {

        //                return (R_Cijena - R_VPC);
        //            }


        //        }
        //        /// <summary>
        //        /// 	Gets or sets the VPC property. 
        //        ///		
        //        /// </summary>
        //        /// <value>This type is decimal.</value>
        //        /// <remarks>
        //        /// This property can not be set to null. 
        //        /// </remarks>
        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public virtual System.Decimal? R_VPC
        //        {
        //            get
        //            {


        //                return (this.Vrijednost2);
        //            }

        //            set
        //            {
        //                this.Vrijednost2 = value;
        //                if (Vrijednost2 != 0)
        //                {
        //                    if (R_Cijena != 0)
        //                    {
        //                        R_RabatPosto = -1 * ((float?)((this.Vrijednost2 / R_Cijena) - 1) * 100);
        //                    }

        //                }

        //            }
        //        }

        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public virtual System.Decimal? R_VP_Vrijednost
        //        {
        //            get
        //            {
        //                return ((decimal?)R_Kolicina * R_VPC);
        //            }
        //        }

        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public virtual System.Single? R_Porez
        //        {
        //            get
        //            {
        //                return this.Postotak3;
        //            }
        //            set
        //            {
        //                this.Postotak3 = value;
        //            }

        //        }

        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public virtual System.Decimal? R_PorezIznos
        //        {
        //            get
        //            {
        //                this.Vrijednost3 = R_VPC * ((decimal?)R_Porez / 100);
        //                return ((decimal?)R_Porez / 100) * R_VP_Vrijednost;
        //            }
        //        }


        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public virtual System.Decimal? R_UkupnoJedinicna
        //        {
        //            get
        //            {
        //                return R_VPC * (((decimal?)R_Porez / 100) + 1);
        //            }
        //        }



        //        [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //        [DataObjectField(false, false, true)]
        //        public virtual System.Decimal? R_UkupnaVrijednost
        //        {
        //            get
        //            {
        //                return R_PorezIznos + R_VP_Vrijednost;
        //            }
        //        }

        //        #endregion


        ///<summary>
        ///</summary>
        [Description(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? UlaznaCijena
        {
            get
            {
                return Vrijednost4;
            }
            set
            {
                Vrijednost4 = value;
                if (IDDokumentSource != null && (IDDokumentSource.IDDokumentTip == 1 
                    || IDDokumentSource.IDDokumentTip == 48 || IDDokumentSource.IDDokumentTip == 49 || IDDokumentSource.IDDokumentTip == 50 ||IDDokumentSource.IDDokumentTip == 14)) return;
                VPCRabat = VPCRabatsnimi;
            }

        }
        ///<summary>
        /// Samo za primku da ne resetira marzu
        ///</summary>
        [Description(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? UlaznaCijenaPrimka
        {
            get
            {
                return Vrijednost4;
            }
            set
            {
                Vrijednost4 = value;
               
            }

        }


        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Single Visak
        {
            get
            {
                if (Kolicina >= 0)
                {
                    return Kolicina;
                }
                else
                {
                    return 0;
                }


            }
            set
            {
                Kolicina = Math.Abs(value);
            }
        }
        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Single Manjak
        {
            get
            {
                if (Kolicina <= 0)
                {
                    return Kolicina * -1;
                }
                else
                {
                    return 0;
                }
            }
            set
            {
                Kolicina = Math.Abs(value) * -1;
            }

        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? UlaznaCijenaSKolicinom
        {
            get
            {
                return UlaznaCijena * Convert.ToDecimal(Kolicina);
            }
        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? Negativni_UlaznaCijenaSKolicinom
        {
            get
            {
                return UlaznaCijenaSKolicinom * -1;
            }
        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Single? RabatPosotoNaUlaznuCijenu
        {
            get
            {
                if (!Postotak2.HasValue)
                {
                    Postotak2 = 0;
                }
                return Postotak2;

            }
            set
            {
                Postotak2 = value;
            }

        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? RabatNaUlaznuCijenu
        {
            get
            {
                Single _helper = (Single)(RabatPosotoNaUlaznuCijenu / 100);
                if (_helper == 0)
                {
                    return Convert.ToDecimal(0);
                }
                if (_helper == 1)
                {
                    return UlaznaCijena;
                }
                return UlaznaCijena - (UlaznaCijena * (1 - (Decimal?)_helper));

            }
            set
            {
                if (UlaznaCijena == 0) return;
                if (value == 0)
                {
                    RabatPosotoNaUlaznuCijenu = 0;
                }
                else
                {
                    RabatPosotoNaUlaznuCijenu = ((float?)((value / UlaznaCijena) * 100));
                }

            }

        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? RabatNaUlaznuCijenuKolicina
        {
            get
            {
                return RabatNaUlaznuCijenu * Convert.ToDecimal(Kolicina);
            }
            set
            {
                //x* y = value;
                if (Kolicina != 0)
                {
                    if (value == 0)
                    {
                        RabatNaUlaznuCijenu = 0;
                    }
                    else
                    {
                        RabatNaUlaznuCijenu = value / Convert.ToDecimal(Kolicina);
                    }
                }
                
            }
        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? Negativni_RabatNaUlaznuCijenuKolicina
        {
            get
            {
                return RabatNaUlaznuCijenuKolicina * -1;
            }


        }

        //[DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
        //[DataObjectField(false, false, true)]
        //public virtual System.Decimal? Negativni_RabatNaUlaznuCijenuKolicina
        //{
        //    get
        //    {
        //        return (RabatNaUlaznuCijenu * Convert.ToDecimal(Kolicina)) * -1;
        //    }


        //}

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Single? VrijednostValute
        {
            get
            {
                if (!Kolicina3.HasValue)
                {
                    Kolicina3 = 1;
                }
                return (Kolicina3);
            }
        }


        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? UlaznaCijena_u_Valuti_s_Rabatom
        {
            get
            {
                return UlaznaCijena - RabatNaUlaznuCijenu;
            }
        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? UlaznaCijena_u_Valuti_s_Rabatom_puta_Kolicina
        {
            get
            {
                return UlaznaCijena_u_Valuti_s_Rabatom * Convert.ToDecimal(Kolicina);
            }
             set
            {
                RabatNaUlaznuCijenu = UlaznaCijena - (value/Convert.ToDecimal(Kolicina));
                
             //   RabatPosotoNaUlaznuCijenu = UlaznaCijena_u_Valuti_s_Rabatom * Convert.ToDecimal(Kolicina);
            }
        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? Negativni_UlaznaCijena_u_Valuti_s_Rabatom_puta_Kolicina
        {
            get
            {
                return UlaznaCijena_u_Valuti_s_Rabatom_puta_Kolicina * -1;
            }
        }



        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? UlaznaCijena_u_Kunama_s_Rabatom
        {
            get
            {
                return UlaznaCijena_u_Valuti_s_Rabatom * Convert.ToDecimal(VrijednostValute);
            }
        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? UlaznaCijena_u_Kunama_s_Rabatom_puta_Kolicina
        {
            get
            {
                return UlaznaCijena_u_Kunama_s_Rabatom * Convert.ToDecimal(Kolicina);
            }
            set
            {
                RabatNaUlaznuCijenu = UlaznaCijena - ((value/Convert.ToDecimal(VrijednostValute)) / Convert.ToDecimal(Kolicina));
            }
        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? Negativni_UlaznaCijena_u_Kunama_s_Rabatom_puta_Kolicina
        {
            get
            {
                return UlaznaCijena_u_Kunama_s_Rabatom_puta_Kolicina * -1;
            }
        }
       
        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? UlaznaCijena_u_Kunama_s_Rabatom_puta_Kolicina_puta_11korz61_PDVUkalk
        {
            get
            {
               // return UlaznaCijena_Kune_ZavisniTroskovi_puta_Kolicina * Convert.ToDecimal(11.0 / 61.0);
                return UlaznaCijena_Kune_ZavisniTroskovi_puta_Kolicina * (decimal?)(Porez/(Porez+100));
            }
        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? VP_Vrijednost_puta_11korz61_PDVUkalk
        {
            get
            {
                return VP_Vrijednost * (decimal?)(Porez / (Porez + 100));
            }
        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? Negativni_VP_Vrijednost_puta_11korz61_PDVUkalk
        {
            get
            {
                return VP_Vrijednost_puta_11korz61_PDVUkalk * -1;
            }
        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? VP_Vrijednost_puta_50korz61_Osnovica
        {
            get
            {
                //return VP_Vrijednost * Convert.ToDecimal(50.0 / 61.0);
                return VP_Vrijednost * (decimal?)(100 / (Porez + 100));
            }
        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? Negativni_VP_Vrijednost_puta_50korz61_Osnovica
        {
            get
            {
                return VP_Vrijednost_puta_50korz61_Osnovica*-1;
            }
        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? UlaznaCijena_u_Kunama_s_Rabatom_puta_Kolicina_puta_50korz61_Osnovica
        {
            get
            {
                return UlaznaCijena_Kune_ZavisniTroskovi_puta_Kolicina * (decimal?)(100 / (Porez + 100));
            }
        }
        

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Single? ZTAutomatski
        {
                get
            {
                if (!Postotak4.HasValue)
                {
                    Postotak4 = 0;
                }
                return Postotak4;

            }
            set
            {
                Postotak4 = value;
            }
            
        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Single? ZTKorisnik
        {
            get
            {
                if (!Postotak5.HasValue)
                {

                    Postotak5 = 0;

                }

                return Postotak5;
            }

            set
            {

                Postotak5 = value;

            }

        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? UlaznaCijena_Kune_ZavisniTroskovi
        {
            get
            {
                Single _helper = (Single)((ZTKorisnik + ZTAutomatski))/100;
                if (_helper == 0)
                {
                    Vrijednost = UlaznaCijena_u_Kunama_s_Rabatom;
                    return UlaznaCijena_u_Kunama_s_Rabatom;
                    
                }
                //if (_helper == 1)
                //{
                //    return Convert.ToDecimal(0);
                //}
                Vrijednost = (UlaznaCijena_u_Kunama_s_Rabatom * (1 + ((Decimal?)_helper)));
                return Vrijednost;
            }

            set
            {

                Decimal? rezultat = 0;
                Single _helper = (Single)((ZTAutomatski)) / 100;
                if (_helper == 0)
                {
                rezultat = UlaznaCijena_u_Kunama_s_Rabatom;
                }
                else
                {
                rezultat = (UlaznaCijena_u_Kunama_s_Rabatom * (1 + ((Decimal?)_helper)));
                }
                rezultat = value - rezultat;
                if (rezultat > 0 && UlaznaCijena_u_Kunama_s_Rabatom != 0)
                {
                    ZTKorisnik = (Single)((rezultat.Value /UlaznaCijena_u_Kunama_s_Rabatom.Value)*100m);
                }
            }
        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? UlaznaCijena_Kune_ZavisniTroskovi_puta_Kolicina
        {
            get
            {

                return UlaznaCijena_Kune_ZavisniTroskovi * Convert.ToDecimal(Kolicina);
            }
        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? Negativni_UlaznaCijena_Kune_ZavisniTroskovi_puta_Kolicina
        {
            get
            {

                return UlaznaCijena_Kune_ZavisniTroskovi_puta_Kolicina * -1;
            }
        }

        
       ///<summary>
       ///</summary>
       [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? VPC
        {
            get
            {
                //if (!Vrijednost2.HasValue)
                //{
                //    Vrijednost2 = 0;
                //}
                return Vrijednost2;
            }
            set
            {
                //if (value !=null)
                //{
                //    Vrijednost2 = Math.Round(value.Value, 2);
                //}
                //else
                //{
                    Vrijednost2 = value;
                //}
            }
        }


        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Single? Marza
        {
            get
            {
                if (UlaznaCijena_Kune_ZavisniTroskovi == 0)
                {
                    //    VPC = UlaznaCijena_Kune_ZavisniTroskovi;
                    return null;
                }
                if (!VPC.HasValue)
                {
                    Postotak = 0;
                    VPC = UlaznaCijena_Kune_ZavisniTroskovi;
                }
                
                Postotak = ((float?)((VPC / UlaznaCijena_Kune_ZavisniTroskovi) - 1)* 100);
                return (float?)(((VPC / UlaznaCijena_Kune_ZavisniTroskovi) - 1) * 100);

            }
            set
            {
                if (UlaznaCijena_Kune_ZavisniTroskovi == 0) return;
                if (value == 0)
                {
                    Postotak = value;
                VPC = UlaznaCijena_Kune_ZavisniTroskovi;
                }
                else
                {
                    Postotak = value;
                    VPC = UlaznaCijena_Kune_ZavisniTroskovi * Convert.ToDecimal(((value/100) + 1));
                }

            }

        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? MarzaIznos
        {
            get
            {
                
                    if (Marza != null)
                    {
                        if (Marza == 0)
                        {
                            return 0;
                        }
                        if (Marza == 100)
                        {
                            return UlaznaCijena_Kune_ZavisniTroskovi;
                        }

                        return ((Decimal)(Marza / 100)) * UlaznaCijena_Kune_ZavisniTroskovi;
                    }
              return null;

            }

        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? MarzaIznosKolicina
        {
            get
            {
                if (UlaznaCijena_Kune_ZavisniTroskovi == 0)
                {
                    return null;
                }

                if (Marza != null)
                {
                    
                    if (Marza == 0)
                    {
                        return 0;
                    }
                    if (Marza == 100)
                    {
                        return UlaznaCijena_Kune_ZavisniTroskovi_puta_Kolicina;
                    }

                    return ((Decimal)(Marza / 100)) * UlaznaCijena_Kune_ZavisniTroskovi_puta_Kolicina;
                }
                return null;

            }

        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? Negativni_MarzaIznosKolicina
        {
            get
            {
                return MarzaIznosKolicina * -1;
            }
        }
        
        
        /////<summary>
        /////</summary>
        //[DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        //[DataObjectField(false, false, true)]
        //public virtual Single? MPCMarza
        //{
        //    //get { return (100 + Porez + (Marza * (1 + Porez))) / 100; }
        //    //set { Marza = (100 * value - 100 - Porez) / (1 + Porez); }
        //    //get { return (((Porez / 100) + 1) * ((VPCRabat / 100) + 1)-1)*100; }

        //    get { Single? helper = ((Porez / 100) + 1) * ((Marza / 100) + 1);
        //    if ((Marza / 100) != 0)
        //        {
        //            return (helper*100) - 100;
        //        }
        //      return 0;
              
        //    }
        //    set { 
        //        Single? helper = ((value/100) + 1)/((Porez/100) + 1);
        //        if (value != 0)
        //        {
        //            Marza = (helper*100) - 100;
        //        }
        //        else
        //        {
        //            Marza = 0;
        //        }
        //    }
        //}

              ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Single? VPCRabat
        {
            get
            {
                if (UlaznaCijena_Kune_ZavisniTroskovi == 0)
                {
                    return Postotak;
                }
                if (VPC == 0)
                {
                    Postotak = 100;
                    return 100;
                }

                Postotak = ((float?)(1 - (VPC / UlaznaCijena_Kune_ZavisniTroskovi)) * 100);
                return (float?)((1 - (VPC / UlaznaCijena_Kune_ZavisniTroskovi)) * 100);

                //VPC = -1*(((Postotak== null ? (decimal?)0 / 100:(decimal?)Postotak) - 1) * UlaznaCijena_Kune_ZavisniTroskovi);
                // (Rabat /100)-1 = VPC/ULC;
                // -1*((Rabat/100 -1) *ULC) = VPC;
              //  return Postotak;
            }
            set
            {
                VPCRabatsnimi = value;
                if (UlaznaCijena_Kune_ZavisniTroskovi == 0) return;
                if (value == 1)
                {
                    Postotak = value;
                    VPC = Convert.ToDecimal(0);
                }
                if (value == 0)
                {
                    Postotak = value;
                    VPC = UlaznaCijena_Kune_ZavisniTroskovi;
                }
                else
                {
                    Postotak = value;
                    VPC = UlaznaCijena_Kune_ZavisniTroskovi * Convert.ToDecimal((1 - ((value) / 100) ));
                }

            }

        }
        Single? _intRabatstavke = 0f;
        ///<summary>
        /// RabatUnesen od klijenta
        ///</summary>
        public Single? VPCRabatsnimi
        {
            get
            {
                return _intRabatstavke;
            }
            set
            {
                _intRabatstavke = value;
            }

        }


        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? VPCRabatIznos
        {
            get
            {
                return UlaznaCijena_Kune_ZavisniTroskovi - VPC;
            }
        }


        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? VP_Vrijednost
        {
            get
            {
                if (VPC != null && VPC.HasValue)
                {
                    return Math.Round( VPC.Value*Convert.ToDecimal(Kolicina),2,MidpointRounding.AwayFromZero);
                }
                else
                {
                    return null;
                }
            }
        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? Negativni_VP_Vrijednost
        {
            get
            {

                return VP_Vrijednost * -1;
            }
        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual String JedMjera
        {
            get
            {

                if (IDArtiklSource != null)
                {
                    if (IDArtiklSource.IDJedinicnaMjeraSource != null)
                       return IDArtiklSource.IDJedinicnaMjeraSource.SkraceniNaziv;
                }
                else
                {
                    return PrilagodenJedMj;
                }
                return String.Empty;
            }
        }
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual String DokumentStavkeOpis
        {
            get
            {

                if (this.DokumentStavkaOpisCollection != null && this.DokumentStavkaOpisCollection.Count >0 )
                {
                    
                       return DokumentStavkaOpisCollection[0].Opis;
                }
                else
                {
                    return null;
                }
            }
        }




        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Single? Porez
        {
            get
            {
                if (!Postotak3.HasValue)
                {

                    Postotak3 = 0;

                }

                return Postotak3;
            }
            set
            {
                Postotak3 = value;
            }

        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? PorezIznos
        {
           
                get
            {
                
                if (Porez == 0)
                {
                    return 0;
                }
                Decimal _helper = ((Decimal)Porez/ (Decimal)100.00);

                 
                    return VPC * _helper;
                  
            }
           
            

        }
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? PorezIznosPL
        {

            get
            {

                if (Porez == 0)
                {
                    return 0;
                }
                Decimal _helper = ((Decimal) Porez / 100m);
                if ((VPC * ((Decimal?)_helper)).HasValue)
                {
                    return Math.Round((VPC * _helper).Value, 2, MidpointRounding.AwayFromZero);
                }
                return (VPC * _helper); 

            }



        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? PorezIznosKolicina
        {

            get
            {

                if (PorezIznos != null && PorezIznos.HasValue)
                {
                    return Math.Round(PorezIznos.Value* (Decimal)Kolicina, 2, MidpointRounding.AwayFromZero);
                }
                else
                {
                    return null;
                }

            }



        }
        
          ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? PorezIznosKolicinaPL
        {

            get
            {

               // return PorezIznosPL* Convert.ToDecimal(Kolicina);
                if (Porez == 0)
                {
                    return 0;
                }
                Decimal _helper = ((Decimal)Porez / (Decimal)100);
                if ((VPC * ((Decimal?)_helper)).HasValue)
                {
                    return Math.Round((VPC * Convert.ToDecimal(Kolicina) * _helper).Value, 2, MidpointRounding.AwayFromZero);
                }
                return VPC * (Decimal)Kolicina * _helper; 

            }



        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? Negativni_PorezIznosKolicina
        {

            get
            {

                return PorezIznosKolicina * -1;

            }



        }


        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? MPC
        {
            get
            {
                //Single _helper = (Single)(Porez / 100);
                //if (_helper == 0)
                //{
                //    this.Vrijednost3 = VPC;
                //    return VPC;
                //}
                if (Vrijednost3 != null && Vrijednost3.HasValue)
                {
                    Vrijednost3 = VPC  + PorezIznos;
                    //Vrijednost3 = Math.Round(Vrijednost3.Value, 2, MidpointRounding.AwayFromZero);
                }
                //Vrijednost3 = VPC + PorezIznos;
                return (VPC + PorezIznos);

            }
            //set
            //{
            //    if (VPC == 0) return;
            //    if (value == 0)
            //    {
            //        Porez = 0;
            //    }
            //    else
            //    {
            //        Porez = ((float?)((value / VPC) * 100));
            //    }

            //}


        }
        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? MPCPrijemniList
        {
            get
            {
                //Single _helper = (Single)(Porez / 100);
                //if (_helper == 0)
                //{
                //    this.Vrijednost3 = VPC;
                //    return VPC;
                //}
                if (VPC != null && VPC.HasValue)
                {
                    Vrijednost3 = (Math.Round((VPC).Value, 2, MidpointRounding.AwayFromZero) + PorezIznos);
                }
                if (Vrijednost3.HasValue)
                {
                    Vrijednost3 = Math.Round(Vrijednost3.Value, 2, MidpointRounding.AwayFromZero);
                }
                return (Vrijednost3);

            }
            set
            {
                //if (VPC == 0) return;
                //if (value == 0)
                //{
                //    Porez = 0;
                //}
                //else
                //{
                //    Porez = ((float?)((value / VPC) * 100));
                //}
                Vrijednost3 = value;
                VPC = value / (((decimal?)Porez/(decimal)100) + 1);

            }


        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? VP_VrijednostPL
        {
            get
            {
                if ((MPC_puta_KolicinaPL / (((decimal?)(Porez) / 100) + 1)).HasValue)
                    return Math.Round((MPC_puta_KolicinaPL / (((decimal?)(Porez) / (decimal)100) + 1)).Value, 2, MidpointRounding.AwayFromZero);
            return (MPC_puta_KolicinaPL / (((decimal?)(Porez) / 100) + 1));
            }


        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? MPC_puta_Kolicina
        {
            get
            {
                if (MPC != null && MPC.HasValue)
                {
                    return Math.Round(MPC.Value * Convert.ToDecimal(Kolicina), 2, MidpointRounding.AwayFromZero);
                }
                else
                {
                    return null;
                }


            }

        }
        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? MPC_puta_KolicinaPL
        {
            get
            {
                //
                Decimal? _rez = 0;
                    Decimal _helper = ((Decimal)Porez / (Decimal)100)+(Decimal)1;
                if ((VPC * ((Decimal?)_helper)).HasValue)
                {
                    if (VPC != null && VPC.HasValue)
                        _rez = Math.Round((Math.Round(VPC.Value, 2, MidpointRounding.AwayFromZero) * Convert.ToDecimal(Kolicina) * ((Decimal?)_helper)).Value, 2, MidpointRounding.AwayFromZero);
                }
                if (VPC != null && VPC.HasValue)
                    _rez = Math.Round(VPC.Value, 2, MidpointRounding.AwayFromZero) * Convert.ToDecimal(Kolicina) * ((Decimal?)_helper);
                return _rez;
            }

        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? Report_MPC_puta_Kolicina
        {
            get
            {
                return MPC_puta_Kolicina * -1;
            }
        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? Negativni_MPC_puta_Kolicina
        {
            get
            {
                return MPC_puta_Kolicina * -1;
            }
        }


        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Single? Report_Kolicina
        {
            get
            {
                return Kolicina * -1;
            }
        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? Report_UlaznaCijena
        {
            get
            {
                return UlaznaCijena * -1;
            }
        }
        
        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? Report_VPCRabatIznos
        {
            get
            {
                if (VPCRabat == 0)
                {
                    return null;
                }
                else
                {
                return VPCRabatIznos * Convert.ToDecimal(Kolicina);
                }
            }
        }

           [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? Report_VPCIznosSRabatom
        {
            get
            {
                if (VPCRabat == 0)
                {
                    return null;
                }
                else
                {
                return UlaznaCijena - VPCRabatIznos;
                }
            }
        }

        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? Negativni_VPCRabatIznos
        {
            get
            {
                if (VPCRabat == 0)
                {
                    return null;
                }
                else
                {
                    return (VPCRabatIznos * Convert.ToDecimal(Kolicina)) * -1;
                }
            }
        }


        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? VPCRabatIznosKolicina
        {
            get
            {

                if (VPCRabatIznos != null || VPCRabatIznos.HasValue)
                {
                    return Math.Round(VPCRabatIznos.Value*Convert.ToDecimal(Kolicina), 2, MidpointRounding.AwayFromZero);
                }
                else
                {
                    return null;
                }
            }
        }

         ///<summary>
         ///</summary>
         [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Single? Report_VPCRabat 
        {
            get
            {
                if (VPCRabat == 0)
                {
                    return null;
                }
                else
                {
                    return VPCRabat;
                }
            }
        }

         
        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? Report_VPC
        {
            get
            {
                return VPC * -1;
            }
        }

                  
        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual Decimal? Report_PorezIznos
        {
            get
            {
                return PorezIznos* -1;
            }
        }
 //       [DescriptionAttribute(""), System.ComponentModel.Bindable(System.ComponentModel.BindableSupport.Yes)]
 //       [DataObjectField(false, false, true)]
 //       public virtual System.Decimal? Report_PorezIznos
 //       {
 //           get
 //           {
 //               return

 //       PorezIznos*Kolicina
 //* -1;
 //           }
 //       }


        ///<summary>
        ///</summary>
        [DescriptionAttribute(""), Bindable(BindableSupport.Yes)]
        [DataObjectField(false, false, true)]
        public virtual String Report_Prilagoden
        {
            get
            {

                if (base.IDArtikl.HasValue)
                {
                    List<KeyValuePair<int, int>> summaryList = new List<KeyValuePair<int, int>>();
                    if (base.IDArtiklSource != null && base.IDOrgJedOdSource != null)
                    {
                        if (base.IDArtiklSource.IDArtiklKategorijaSource != null)
                        {
                            Dictionary<int, int> _ints = new Dictionary<int, int>();
                            foreach (
                                ArtiklSpecifikacija artiklSpecifikacija in
                                    base.IDArtiklSource.IDArtiklKategorijaSource.ArtiklSpecifikacijaCollection)
                            {
                                if (artiklSpecifikacija.RedBrRacunu != null)
                                {
                                    _ints.Add(artiklSpecifikacija.ID, artiklSpecifikacija.RedBrRacunu.Value);
                                }

                            }
                            

                            summaryList.AddRange(_ints);
                            summaryList.Sort

                                (

                                    delegate(KeyValuePair<int, int> kvp1,

                                             KeyValuePair<int, int> kvp2)

                                        {

                                            return Comparer<int>.Default.Compare(kvp1.Value, kvp2.Value);

                                        }

                                );
                        }
                        if (summaryList.Count >0)
                        {
                            if (base.IDArtiklSource.ArtiklVrijednostiCollection != null)
                            {
                                StringBuilder stringBuilder = new StringBuilder( "[" + base.IDOrgJedOdSource.SifraSkladista + "]: " + IDArtiklSource.Naziv);
                                stringBuilder.AppendLine();
                                foreach (KeyValuePair<int, int> keyValuePair in summaryList)
                                {
                                    ArtiklVrijednosti nArtiklVrijednosti = base.IDArtiklSource.ArtiklVrijednostiCollection.Find("IDArtiklSpecifikacija",
                                                                                         keyValuePair.Key);

                                    ArtiklSpecifikacija artiklSpec = base.IDArtiklSource.IDArtiklKategorijaSource.ArtiklSpecifikacijaCollection.Find(
                                            "ID", keyValuePair.Key);
                                        try
                                        {
                                            if (nArtiklVrijednosti != null && artiklSpec != null)
                                            {

                                                if (nArtiklVrijednosti.RealanBroj != null)
                                                {
                                                    stringBuilder.Append(String.Format(artiklSpec.FormatPrikaza,
                                                                                       artiklSpec.Naziv,
                                                                                       nArtiklVrijednosti.RealanBroj));
                                                }
                                                if (nArtiklVrijednosti.CijeliBroj != null)
                                                {
                                                    stringBuilder.Append(String.Format(artiklSpec.FormatPrikaza,
                                                                                       artiklSpec.Naziv,
                                                                                       nArtiklVrijednosti.CijeliBroj));
                                                }

                                                if (nArtiklVrijednosti.Datum != null)
                                                {
                                                    stringBuilder.Append(String.Format(artiklSpec.FormatPrikaza,
                                                                                       artiklSpec.Naziv,
                                                                                       nArtiklVrijednosti.Datum));
                                                }

                                                if (nArtiklVrijednosti.Tekstualno != null)
                                                {
                                                    stringBuilder.Append(String.Format(artiklSpec.FormatPrikaza,
                                                                                       artiklSpec.Naziv,
                                                                                       nArtiklVrijednosti.Tekstualno));
                                                }

                                                stringBuilder.Append(" ");
                                            }
                                        
                                        }
                                    catch
                                    {
                                        //TODO Dodat neki logging;
                                    }
                                       
                                }
                                 return stringBuilder.ToString();
                            }
                        }
                        else
                        {
                            return "[" + base.IDOrgJedOdSource.SifraSkladista + "]: " + IDArtiklSource.Naziv;
                        }
                    }
                    else
                    {
                        if (base.IDArtiklSource != null)
                           return IDArtiklSource.Naziv;
                    }

                }
                else
                {
                        return base.Prilagoden ?? String.Empty;
                    
                    



                }
                return "Artikl se nije uspio očitati, molim Vas ugasite i ponovo prikažite ovaj izvještaj/račun";
                //if (base.Prilagoden != null || Prilagoden == String.Empty)
                //{
                //    return Prilagoden;
                //}
                //if (base.IDArtiklSource != null)
                //{
                //    return IDArtiklSource.Naziv;
                //}
                //return String.Empty;
            }
        }

        
        

    }

}


